﻿using VSTalk.Engine.Core.EntitySession;
using VSTalk.Model;

using agsXMPP;

/* XMPP chat sessions are not formally negotiated but proceed naturally. The entity that
 * initiates the conversation sends a message to the bare JID of the responder, and this
 * message is stamped by the initiator’s server with the full JID of the initiator. When the
 * responder sends a reply, it too is stamped by the recipient’s server with the full JID of
 * the responder. At this point, the initiator knows the responder’s full JID and the responder 
 * knows the initiator’s full JID, so the parties have “locked in” to each other’s
 * XMPP resource identifiers. Each party now addresses stanzas to the full JID of the other
 * party when sending subsequent messages, until and unless receiving a presence change
 * from the other party (which might trigger resending a message to the bare JID).
 */

namespace VSTalk.Engine.Core.ChatSession
{
    public interface IInterlocutorChatSession
    {
        IInterlocutorResource ActiveResource { get; }
        Interlocutor Interlocutor { get; }
    }
}